繼昨天講了的ConstraintLayout,今天要來介紹自己也常用的另外兩個布局,LinearLayout以及RelativeLayout,首先從LinearLayout先開始。
LinearLayout(線性布局),嚴格來說又可分成兩種布局方向,一種是水平方向的(vertical)以及垂直方向的(horizontal),首先先附上程式:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:layout_marginTop="100dp"
android:layout_marginLeft="100dp"
android:padding="20dp"/>
</LinearLayout>
在最外層的layout,可以看到他的布局方向(orientation)是垂直方向(horizontal),若orientation這個屬性改成vertical則是水平方向的,接著先來講一些常用到的屬性。
其中裡面也蠻多通用於其他布局的屬性,主要有:
(元件內外部距離)
(元素位置控制)
RelativeLayout(相對布局),主要可透過相對位置(相對布局、元件)來調整、設定其元件的位置。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="100dp"
android:layout_marginTop="100dp"
android:text="Hello World!"
android:padding="50dp"/>
</RelativeLayout>
(與元件對齊):(="@+id/????")?為你要對齊的元件的id。
(與父層對齊):(="true")
(與對應父層方向拉開的距離 margin):(="????dp")你要拉開?dp的距離,或者你想用sp、dpi等都可以。
更多屬性請參閱:Android Developers/RelativeLayout